Method and apparatus for mimicking human gait with prosthetic knee devices using a state controller to assist in stumble recovery

ABSTRACT

The present invention relates to a prosthetic device including a prosthetic joint which accurately transitions between a loose mode and a stiff mode to more accurately mimic a human gait. The prosthetic joint includes a state controller which utilizes a sensor to detect prosthetic joint movement data, and compares it with prosthetic joint movement decision values to determine when a solenoid should be energized to place the prosthetic joint in the loose mode. An optimization unit connects to the prosthetic joint in a prosthetic joint system. The optimization unit generates a plurality of data files containing prosthetic joint movement data corresponding to an amputee walking without stumbling. By iteratively analyzing the prosthetic joint movement data, the optimization unit adjusts the prosthetic joint movement decision values to ensure that the prosthetic joint does not prematurely enter a stumble recovery state.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority from U.S. ProvisionalApplication Ser. No. 61/304,345 filed on Feb. 12, 2010 entitled “NovelEnhanced Methods for Mimicking Human Gait With Prosthetic Knee Devices.”This application also claims the benefit of and Paris Conventionpriority of U.S. Utility patent application Ser. No. 12/697,969 filed onFeb. 1, 2010 entitled “Novel Enhanced Methods for Mimicking Human GaitWith Prosthetic Knee Devices” and further incorporates by reference U.S.Pat. No. 7,655,050.

BACKGROUND

1. Field of the Invention

The present disclosure relates generally to prosthetic devices and, moreparticularly, to prosthetic devices including a prosthetic joint whichmore accurately transitions between a loose mode and a stiff mode tothereby more accurately mimic a human gait.

2. Description of the Related Art

Modern, computer-controlled prosthetic devices have many advantages overconventional prosthetic devices. For example, computer-controlledprosthetic devices can allow the amputees to walk with limited fear ofstumbling or falling, allow amputees to lead a more active lifestyle,and improve the likelihood that amputees can realize their full economicpotential. However, modern, computer-controlled prosthetic devices havesome drawbacks, which may not allow amputees to take full advantage ofall of their features.

For example, modern, computer-controlled prosthetic devices use anactuator, such as a hydraulic damping cylinder, which allows aprosthetic joint in the prosthetic device to be in a stiff mode or aloose mode. The transition between the stiff and loose mode is triggeredby the occurrence of certain events (e.g., full extension of theprosthetic joint and reversal of the prosthetic joint's motion).However, the events that trigger the transition from stiff mode to loosemode, or vice versa, can occur at times when a transition is notdesirable and thereby cause discomfort to the amputee.

For example, if the prosthetic joint is loose at the wrong time, theamputee could place weight on the prosthetic device and possibly losehis or her balance, or the amputee can feel the prosthetic joint loosencreating an undesirable sensation. However, if the prosthetic joint isstiff at the wrong time, the amputee may walk with an undesirable gait.Furthermore, since prosthetic devices often default to the stiff mode asa safety precaution (e.g. when the amputee stumbles), the transitionfrom the stiff mode to the loose mode often does not occur when itshould. This can reduce the amputee into walking in a manner similar toa peg-legged pirate when using the modern, computer-controlledprosthetic device. Given that the modern, computer-controlled prostheticdevices are designed to more accurately mimic a human gait and thusprovide vastly more functionality than a crude peg, these drawbacksdefeat the purpose of the modern, computer-controlled prosthetic devicesand can limit their value.

To reduce such occurrences, variables controlling when the modern,computer-controlled prosthetic device enters stumble recovery can beadjusted. However, as the modern, computer-controlled prosthetic devicebecomes more sophisticated, the number of variables begins to increasedrastically. Manually adjusting each variable to tune the modern,computer-controlled prosthetic device becomes laborious, time-consuming,and cost ineffective.

Thus, there is a need for a prosthetic joint which more accuratelytransitions between a loose mode and a stiff mode to thereby moreaccurately mimic a human gait.

SUMMARY

The present invention relates to a prosthetic device including aprosthetic joint which more accurately transitions between a loose modeand a stiff mode to thereby more accurately mimic a human gait. Theprosthetic joint can include a state controller, a sensor systemconsisting of one or more sensors, a memory, and a controllable actuatorsystem. The state controller can utilize the sensor system to detectprosthetic joint movement data, which is compared with expected normalprosthetic joint movement data to decide the state of the controlsystem. When the prosthetic joint is in a Setup Swing Flexion state, thestate controller progresses the prosthetic joint through additionalstates before commanding the actuator to place the prosthetic joint in aparticular mode. This prevents the prosthetic joint from entering a modeprematurely. This can prevent for instance the amputee placing hisweight on the prosthetic device and losing his balance. It can alsoprevent the amputee from feeling the prosthetic joint change resistanceinappropriately and the subsequent undesirable sensation.

The prosthetic joint can also be part of a prosthetic joint system whichalso additionally includes an optimization unit. The optimization unitcan generate a plurality of data files containing prosthetic jointmovement data corresponding to an amputee walking at various speedswithout stumbling. By iteratively analyzing the prosthetic jointmovement data, the optimization unit can adjust the prosthetic jointmovement decision values to ensure that the prosthetic joint does notprematurely enter a stumble recovery state. This ensures that theprosthetic joint does not prematurely enter high resistance mode due toa perceived stumble when the amputee is not actually stumbling.Optimizing the prosthetic joint movement decision values can also reduceinstances where the prosthetic device unnecessarily transitions to theincorrect mode. Furthermore, it also allows for greater accuracy intransitioning into a high resistance mode when the amputee has anunexpected gait deviation. This can provide better support for theamputee. The optimization unit also allows for a simplistic optimizationof the prosthetic joint movement decision values, reducing setup costsfor the prosthetic device.

In one embodiment, the present invention is a prosthetic joint capableof selectively entering a stumble recovery state including a statecontroller configured to detect prosthetic joint movement data,determine a state of the prosthetic joint using the prosthetic jointmovement data, and analyze the prosthetic joint movement data and aprosthetic joint movement decision values to determine when the state ofthe prosthetic joint should enter a stumble recovery state.

In another embodiment, the present invention is a method for controllinga state in a prosthetic joint including detecting, using a statecontroller, prosthetic joint movement data, determining, using a statecontroller, a state of the prosthetic joint using the prosthetic jointmovement data, retrieving, using the state controller, prosthetic jointmovement decision values, and analyzing, using the state controller, theprosthetic joint movement data and prosthetic joint movement decisionvalues to determine when the state of the prosthetic joint should entera stumble recovery state.

In yet another embodiment, the present invention is a prosthetic jointsystem including an optimization unit configured to generate a pluralityof data files containing prosthetic joint movement data from a movementof a prosthetic joint capable of being in one or more states, anditeratively analyzing the prosthetic joint movement data for each of theplurality of data files to determine the prosthetic joint movementdecision values to ensure a state of the prosthetic joint matches upwith a corresponding movement of the prosthetic joint.

In still yet another embodiment, the present invention is a method ofoptimizing a prosthetic joint system to ensure a state of a prostheticjoint matches with a corresponding movement of a prosthetic jointincluding generating, using an optimization unit, a plurality of datafiles containing prosthetic joint movement data from a movement of aprosthetic joint, and iteratively analyzing, using the optimizationunit, the prosthetic joint movement data for each of the plurality ofdata files to determine the prosthetic joint movement decision values toensure a state of the prosthetic joint matches up with a correspondingmovement of the prosthetic joint.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present disclosure will now be described, by way ofexample only, with reference to the following drawings in which:

FIG. 1 depicts a hydraulic cylinder that actuates a prosthetic jointaccording to an embodiment of the present invention;

FIG. 2 depicts a section view of a portion of the hydraulic cylinderaccording to an embodiment of the present invention;

FIG. 3 depicts a section view of a portion of the hydraulic cylinderaccording to an embodiment of the present invention;

FIG. 4 is a box diagram of a prosthetic joint system according to anembodiment of the present invention;

FIG. 5 depicts an exemplary gait cycle and corresponding states of aprosthetic joint according to an embodiment of the present invention;

FIG. 6 is a graph of sagittal plane moment data, knee angle data, andknee angle rate of change data for an exemplary gait cycle andcorresponding states of a prosthetic joint according to an embodiment ofthe present invention;

FIG. 7 is a flowchart of states of a prosthetic joint according to anembodiment of the present invention;

FIG. 8 a flowchart of states of a prosthetic joint according to anembodiment of the present invention;

FIG. 9 is a portion of a graph of sagittal plane moment data, knee angledata, and knee angle rate of change data for an exemplary gait cycle andcorresponding states of a prosthetic joint according to an embodiment ofthe present invention;

FIG. 10 depicts information displayed by an optimization unit accordingto an embodiment of the present invention;

FIG. 11 depicts information displayed by an optimization unit accordingto an embodiment of the present invention;

FIG. 12 depicts information displayed by an optimization unit accordingto an embodiment of the present invention;

FIG. 13 depicts information displayed by an optimization unit accordingto an embodiment of the present invention;

FIG. 14 depicts data collected by an optimization unit according to anembodiment of the present invention;

FIG. 15 depicts a plurality of data files used by an optimization unitaccording to an embodiment of the present invention;

FIG. 16 depicts suggested prosthetic joint movement decision values byan optimization unit according to an embodiment of the presentinvention;

FIG. 17 depicts state transitions identified by the optimization unitaccording to an embodiment of the present invention;

FIG. 18 depicts a process according to an embodiment of the presentinvention; and

FIG. 19 depicts a process according to an embodiment of the presentinvention.

DETAILED DESCRIPTION

In one embodiment, the present invention includes, for example, anactuator 150. The actuator 150 can be part of a prosthetic joint, whichin turn can be used as part of a prosthetic device. The actuator 150includes, for example, a hydraulic damping cylinder 102. As seen in FIG.2 (which is a cross-sectional view of the portion A in FIG. 1, thehydraulic damping cylinder 102 includes a spool valve 104 and reed checkvalve 106. As seen in FIG. 3, the hydraulic damping cylinder 102 alsoincludes a return spring 105 and a solenoid 108.

When the solenoid 108 is energized, the solenoid 108 opens the spoolvalve 104 and permits fluid to flow through the spool valve 104. Thisreduces the damping of the hydraulic damping cylinder 102 to permit easybending of the prosthetic joint 100. However, when the solenoid 108 isde-energized, the spool valve 104 can be closed by return spring 105,and no fluid flows through the spool valve 104. This increases thedamping of the hydraulic damping cylinder 100. Thus, the hydraulicdamping cylinder 102, and the actuator 150 operate in a binaryoperation: stiff mode (with increased damping and high resistance) andloose mode (with decreased damping and low resistance) depending on whatportion of the gait cycle the amputee is in.

As seen in FIG. 4, the actuator 150 can be part of a prosthetic joint100 and a prosthetic joint system 200. Thus, the prosthetic joint 100can also operate in a binary operation: stiff mode (with increaseddamping) and loose mode (with decreased damping) depending on whatportion of the gait cycle the amputee is in. The prosthetic joint system200 can include the prosthetic joint 100, and an optimization unit 110.The prosthetic joint 100 can also include a state controller 112connected to the solenoid 108 in the actuator 150, a sensor 114connected to the state controller 112, and a memory 116 connected to thestate controller 112. The state controller 112 energizes or de-energizesthe solenoid 108 based on prosthetic joint movement data detected by thesensor 114 and prosthetic joint movement decision values stored in thememory 116. Thus, the state controller 112 can utilize the sensor 114 todetect the prosthetic joint movement data. The prosthetic joint movementdata are related to the movement of the prosthetic joint 100 and/or theprosthetic device. In one embodiment, the prosthetic joint movement datacan include, for example, swing time data, moment data, knee angle data,and/or knee angle rate of change data.

In the current but not the only possible embodiment of this invention,the prosthetic joint movement data decision values can include, forexample, the straight knee angle decision value (ExtendedAngle−3), thebent knee angle decision value (ExtendedAngle+3), the extend wait statetime delay (ExtendHoldDelay), the heel moment decision value(HeelMinMax), rising moment decision value (T1), wait for trigger 1state count (MaxHeelWait), declining peak moment decision value(PeakMoment−25 or PeakMoment*0.95), declining moment decision value(T2), maximum leg swing time (sdt), maximum knee angle (MaxSwingAngle),maximum knee angle rate of change (MaximumSwingRate), minimum swingstate time delay (MinFireTime), bent knee time decision value(SwingBendTime), first moment boundary value(MinMoment+FireMomentDelta), moment noise buffer value(FireMomentDelta), second moment boundary value(MaxSwingMoment+FireMomentDelta), maximum swing moment value(MaxSwingMoment), decreased moment time decision value(SwingBendTime+SwingUnloadTime), decreased moment time buffer value(SwingUnloadTime), third moment boundary value(MinSwingMoment+FireMomentDelta), minimum swing moment boundary(MinSwingMoment), maximum swing moment (MaxSwingMoment), angle peaknoise buffer value (AngPeakDelta), and/or the minimum knee angle rate ofchange value (MinSwingRate). The prosthetic joint movement data decisionvalues can aid in the operation of the prosthetic joint 100 and will bedescribed in more detail later.

The state controller 112 determines which state the prosthetic joint 100should be in, in order to ensure that the hydraulic damping cylinder 102and the prosthetic joint 100 are in the correct state that correspondsto the gait of the user. The state of the hydraulic damping cylinder 102and/or the prosthetic joint 100 indicates whether the amputee isprogressing through a normal gait and also whether the hydraulic dampingcylinder 102 and the prosthetic joint 100 is in a stiff mode or a loosemode.

As seen, for example, in FIG. 5, for each leg, a walking gait can bedivided into two phases, a stance phase and a swing phase. The stancephase is defined as the period of time during which the foot of theobserved leg is weighted. The swing phase is defined as the period oftime when the foot of the observed leg is un-weighted. Within the stancephase are multiple sub-phases such as the initial contact sub-phase, theloading response sub-phase, the mid stance sub-phase, the terminalstance sub-phase, the pre swing sub-phase, the initial swing sub-phase,the mid-swing sub-phase, and/or the terminal swing sub-phase.

The stance phase of a walking gait begins as the heel strikes theground, indicated by the sub-phase initial contact. Upon heel strike,the knee flexes slightly to absorb some of the impact forces acting onthe limb due to weight acceptance as indicated by the leading responsesub-phase.

After the foot is flat on the ground, the shin begins to rotate forwardabout the ankle as indicated by the mid stance sub-phase. During the midstance, the shin rotates, and the knee remains flexed in order tominimize the rise of the person's center of mass as it passes over theankle joint center. As the shin continues to rotate forward and thecenter of mass progresses forward, the weight acting on the limb movestowards the toe of the foot. The force of the weight acting on the toegenerates a torque about the knee joint that tends to straighten, orextend, the knee—referred to as “stance extension” of the knee. Stanceextension continues until the transition point to the swing phase.

Soon after the knee is completely extended, the toe pushes off theground, as indicated by the terminal stance sub-phase. As the toe pushesoff the ground, the knee begins to flex as indicated by the pre swingsub-phase. The knee flexes to about 60° degrees in the initial swingsub-phase. In order to keep the toe from stubbing on the ground, theknee will remain flexed as the leg rotates, or swings, forward about thehip joint in the initial swing sub-phase. As the leg continues to swingforward the knee will begin to extend until it is nearlystraight—referred to as “swing extension” of the knee during the midswing sub-phase. Soon after the knee is fully extended in the terminalswing sub-phase. Thereafter, the heel of the foot will strike the groundagain, and the gait cycle begins all over.

During the level-ground walking gait cycle described above, a biologicalknee, together with the muscles acting on it, functions primarily as anabsorber of energy. Thus, to mimic a natural walking gait and to supportthe amputee, the hydraulic damping cylinder 102 provides a relativelyhigh amount of resistance to motion, or damping, making the prostheticjoint 100 comparatively stiff and able to support high forces. However,at certain times, the hydraulic damping cylinder 102 provides arelatively low resistance making the prosthetic joint 100 comparativelyloose and able to swing freely to facilitate the natural gait of theamputee. For example, the prosthetic joint 100 should be loose duringportions of the terminal stance sub-phase, the pre swing sub-phase, andthe initial swing sub-phase. However, even in those sub-phases, theprosthetic joint 100 may become stiff when there is abnormal gait event,such as when the amputee is falling or stumbling.

Based on the movements of the amputee in the normal gait cycle, thestate controller 112 controls whether the prosthetic joint 100 should bestiff or loose to both facilitate the normal gait of the amputee andalso to aid the amputee when the amputee is falling or has an abnormalgait. To do so, the state controller controls which state the prostheticjoint 100 is in. As seen in FIG. 5, the prosthetic joint 100 is ingenerally one of 7 states during a natural gait: Wait for Heel Load(phase 3) state, Wait for Trigger 1 (phase 4) state, Wait for Peak(phase 5) state, Wait for Trigger 2 (phase 6) state, Triggered (phase 7)state, Wait for Extend (phase 1) state, and Extend Wait (phase 2) state.Generally the state controller 112 starts the prosthetic joint 100 atthe Wait for Extend (phase 1) state and progresses through the statesunless there are any abnormalities, in which case the state controller112 returns the state of the prosthetic joint 100 to the Wait for Extend(phase 1) state.

The gait cycle and the states of the prosthetic joint 100 can be seenwith reference to FIGS. 6 and 7. FIG. 6 depicts the state of theprosthetic device along with the corresponding prosthetic joint movementdata such as moment data, the knee angle data, and the knee angle rateof change data. In FIG. 6, the moment data is indicated by the curve122, the knee angle data is indicated by the curve 124, and the kneeangle rate of change data is indicated by the curve 124. FIG. 7 is aflow chart depicting the flow path of the states of the prosthetic joint100 as controlled by the state controller 112 in one possible embodimentof the current invention. In FIG. 7, each circular or rectangular shaperepresents a state and the arrows represent allowable state transitions.The text in the state (circular or rectangular shape) names the state.The text along any arrow shows the conditions that govern thetransition. The arrow is followed if the condition is true. Staying inthe same state is not shown and is implied. So in any control cycle thestate can remain the same or change by following one of the arrows.

The normal sequence of states flows from top to bottom on each page. Thedesired level ground walking transitions are all downward and exit thebottom of a state and reiterates to the top. Abort or stumble recoveryis indicated by upward transitions to the Wait for Extend (phase 1)state. The prosthetic joint movement decision values control most of thestate transitions. The prosthetic joint movement decision values can beoptimized or varied by the user or the optimization unit 110, which willbe discussed later.

Although in FIG. 5, the Wait for Heel Load (phase 3) state is depictedon the left most side, the state controller 112 sets the default statefor the prosthetic joint 100 to be the Wait for Extend (phase 1) state,as shown in FIGS. 6 and 7. Thus, each cycle begins at the Wait forExtend (phase 1) state and ends at the Triggered (phase 7) state whenthe state controller 112 causes the solenoid 108 to be energized. Ofcourse, after the Triggered (phase 7) state, the state of the prostheticjoint 100 transitions back to the Wait for Extend (phase 1) and thecycle is repeated.

Wait for Extend (phase 1): In one embodiment, this is the starting stateof the prosthetic joint 100. In the Wait for Extend (phase 1) state, thestate controller 112 waits until the prosthetic joint 100 is extendedpast a knee angle threshold. In FIG. 7, a fully straightened knee has anangle of 0°, thus as the value of the knee angle decreases, theprosthetic joint 100 is straightening out. When it has a value below anextended knee angle decision value, indicated by ExtendedAngle−3 in FIG.7, the prosthetic joint 100 is considered to be extended and proceeds tothe next state, Extend Wait (phase 2). In FIG. 6, the knee angledecision value Extended Angle−3 is indicated by the line 128.

The Wait for Extend (phase 1) state is also, for example, a stumblerecovery state. This is because in the Wait for Extend (phase 1) state,the prosthetic joint 100 is set to be stiff and the amputee can exit thestate by extending the prosthetic joint 100, signifying that the amputeeis in control of his movements and ready for a normal gait.

Extend Wait (Phase 2):

The prosthetic joint 100 is in an Extend Wait (phase 2) state for apredetermined period of time, such as an extend wait state time delay.In FIG. 7, the extend wait state time delay is indicated asExtendHoldDelay. Thus, the Extend Wait (phase 2) state implements a timedelay to prevent noise from falsely triggering the prosthetic joint 100into swing. For example, as seen in FIG. 6, there is some jitter in themoment data while the prosthetic device is in the Extend Wait (phase 2)state. The extend wait state time delay ExtendHoldDelay has a defaultvalue of 125 ms, but can be adjusted during the setup of the prostheticjoint 100. The normal exit is at the expiration of this time.

This means that the prosthetic joint 100 must remain in the extendedposition for this time. If the prosthetic joint 100 does not remainextended for this period of time, the state controller 112 returns thestate of the prosthetic joint 100 to the Wait for Extend (phase 1) stateto allow the prosthetic joint 100 to remain in a stiff state.Furthermore, if the knee angle data indicates that the prosthetic joint100 is bent beyond a bent knee angle decision value ExtendedAngle+3,then the state controller 112 also returns to the Wait For Extend(phase 1) state. This is because the prosthetic joint 100 is being bentwhen it should be extended, signifying that there is an abnormal gait.

In addition, the Extend Wait (phase 2) state can also exit to the Waitfor Extend (phase 1) state when a Not Loaded condition is reached. In aNot Loaded condition, the moment data indicates that the moment of theprosthetic joint 100 is substantially near zero (0) for a predeterminedperiod of time. The predetermined period of time ensures that the NotLoaded condition is not triggered just when the moment crosses the zeromoment boundary, but instead is triggered when the moment hovers aroundzero for some period of time. Depending on the data used, however, thepredetermined period of time is optional and can be eliminated if themoment will not cross the zero moment boundary such as if load data isused.

Wait for Heel Load (Phase 3):

In the Wait for Heel Load (phase 3) state, the state controller 112looks for a heel moment less than a heel moment decision value. Heelmoments are seen as negative moments, thus the lower the value, thegreater the moment exhibited when the heel strikes the ground. The statecontroller 112 transitions the prosthetic joint 100 to the next statewhen the moment data indicates that the moment is below the heel momentdecision value HeelMinMax. The heel moment decision value HeelMinMax isindicated by the line 130 in FIG. 6. When the moment falls below theheel moment decision value HeelMinMax, the state controller 112transitions the state of the prosthetic joint 100 to the Wait forTrigger 1 (phase 4) state. Normally HeelMinMax is set to a high momentvalue, so the state controller 112 transitions out of the Wait for HeelLoad (phase 3) state quickly. An abnormal exit occurs when theprosthetic joint 100 bends as indicated by the knee angle being greaterthan the bent knee angle decision value ExtendedAngle+3. In such a case,the state controller 112 returns the state of the prosthetic joint 100to the Wait for Extend (phase 1) State due to an abnormal gait. Inaddition, the Wait for Heel Load (phase 3) state can also exit to theWait for Extend (phase 1) state when the Not Loaded condition isreached.

Wait for Trigger 1 (Phase 4):

In the Wait for Trigger 1 (phase 4) state, the state controller 112,waits for the moment to rise above a rising moment decision value T1 asindicated by the line 132 in FIG. 6. The rising moment decision value T1is typically set to two-thirds (⅔) of the peak moment occurring during anormal step, but can be adjusted as necessary during setup of theprosthetic joint 100. When the moment data indicates that the moment isgreater than the rising moment decision value T1, the state controller112 sets the state of the prosthetic joint 100 to the Wait for Peak(phase 5) state.

However, once the state controller 112 determines that the state of theprosthetic joint 100 is in the Wait for Trigger 1 (phase 4) state, thestate controller 112 initiates a wait for trigger 1 count. The wait fortrigger 1 count is based on a timer which measures the time that theprosthetic joint 100 is in the Wait for Trigger 1 (phase 4) state. Whenthe wait for trigger 1 count exceeds the maximum heel wait time decisionvalue, which is shown as the MaxHeelWait value in FIG. 7, the statecontroller 112 returns the state of the prosthetic joint 100 back to theWait for Heel Load (phase 3) state.

If the knee bends beyond the bent knee angle decision valueExtendedAngle+3, the state controller 112 returns the state of theprosthetic joint 100 back to the Wait For Extend (phase 1) state. Inaddition, the Wait for Trigger 1 (phase 4) state can also exit to theWait for Extend (phase 1) state when the Not Loaded condition isreached. The Wait for Trigger 1 (phase 4) state can also exit to theWait for Extend (phase 1) state when a Ramp Mode is Enabled indicatingthat the amputee is traversing an incline, such as when he is walkingdown relatively steep steps, a hill, or a ramp.

Wait for Peak (Phase 5):

In the Wait for Peak (phase 5) state, the state controller 112 analyzesthe moment data to determine when the moment has reached the peak momentand has started declining. For example, the state controller 112analyzes the moment data to determine that the peak moment has beenreached, and furthermore that the moment data indicates that the momenthas declined below a declining peak moment decision value.

The declining peak moment decision value is a moment value less than theabsolute peak moment which can indicate that the moment is declining,taking into account possible noise at the peak moment. In FIG. 7, thebuffer value is set to be 25 counts less than the peak moment or 95% ofthe peak value, but can be adjusted during an initial setup of theprosthetic joint 100. Thus, when the moment data indicates that the peakmoment has been reached and that the moment is less 25 counts of thepeak moment, or is 95% of the peak moment, the state controller 112progresses to the next state, the Wait for Trigger 2 (phase 6) state.The declining peak moment decision value allows for some variations inmoment data at the peak moment due to noise without the prosthetic joint100 prematurely entering the next state. There are no additional exitsfor the Wait for Peak (phase 5) state.

Wait for Trigger 2 (Phase 6):

In the Wait for Trigger 2 state, the state controller waits until themoment data indicates that the moment is less than a declining momentdecision value T2, which is indicated by the line 136 in FIG. 6. Thedeclining moment decision value T2 is set relatively low compared to thepeak moment to ensure that weight is removed from a prosthetic footconnected to the prosthetic joint 100. This is because in the Triggered(or Swing) (phase 7) state, the state controller 112 energizes thesolenoid 108 causing the prosthetic joint 100 to be loose. Thus, in theWait for Trigger 2 (phase 6) state, the state controller 112 ensuresthat the prosthetic joint 100 is not loose prematurely, such as beforeweight is removed from the prosthetic foot. Otherwise, the amputee canfeel the loosening of the prosthetic joint 100, causing an abnormal andstrange sensation for the amputee. Once the moment data indicates thatthe moment is less than the moment decision value T2, the statecontroller 112 advances the state of the prosthetic joint 100 to thenext state, the Triggered (or Swing) (phase 7) state. In addition, theWait for Trigger 2 (phase 6) state can also exit to the Wait for Extend(phase 1) state when the Not Loaded condition is reached. The Wait forTrigger 2 (phase 6) state can also exit to the Wait for Extend (phase 1)state when the Ramp Mode is Enabled.

Triggered (or Swing) (Phase 7):

In the Triggered (or Swing) (phase 7) state, the state controller 112will energize the solenoid 108 causing the prosthetic joint 100 toloosen. The state controller 112 continues to progress through severaladditional states while the solenoid 108 is energized to ensure that theprosthetic joint 100 transitions back to the stiff mode at the propertime. This can be seen, for example, in FIG. 8 and FIG. 9. FIG. 8represents a flowchart of the Triggered (or Swing) (phase 7) state,while FIG. 9 is a graph of the relevant portion of the graph in FIG. 6relating to the Triggered (or Swing) (phase 7) state.

As can be seen, the Triggered (or Swing) (phase 7) state includesvarious other states such as the sub-states including, Minimum SwingTime (phase 7.1.1) state, Terminal Stance (phase 7.1.2) state, WeightedSwing Flexion (phase 7.1.3) state, Swing Flexion (phase 7.1.4) state,Setup Terminal Stance (phase 7.2.1) state, and/or Setup Swing Flexion(phase 7.2.2) state. The Setup Terminal Stance (phase 7.2.1) stateand/or the Setup Swing Flexion (phase 7.2.2) state are only entered whenthe prosthetic joint 100 is in a setup mode.

During the Triggered (or Swing) (phase 7) state, the state controller112 provides additional monitoring as indicated by the oval labeled“Overall Monitors.” The Overall Monitors monitor the swing time of theleg portion of the prosthetic joint 100, the knee angle of theprosthetic joint 100 and/or the knee angle rate of change of theprosthetic joint 100 even during the sub-states of the Triggered (orSwing) (phase 7) state. Thus, the state controller 112 constantlymonitors the swing time data of the leg portion of the prosthetic joint100, the knee angle data of the prosthetic joint 100, and/or the kneeangle rate of change data of the prosthetic joint 100 to ensure that itdoes not exceed a maximum leg swing time, a maximum knee angle, and/or amaximum knee angle rate of change. This ensures that the prostheticjoint 100 is performing a normal gait instead of an abnormal gait.

For example, the maximum leg swing time ensures that the amputee doesnot take too long to swing the leg portion of the prosthetic joint 100.If the amputee takes too long, it is likely that there is problem in thegait of the amputee and that the state controller 112 should stiffen theprosthetic joint 100. The maximum knee angle ensures that the prostheticjoint 100 is not bent too much. If the prosthetic joint 100 is bent toomuch, it is likely that the user is falling or experiencing some otherabnormal condition in the gait. In which case, the prosthetic joint 100should be stiff The maximum knee angle rate of change ensures that theprosthetic joint 100 is not bending too fast. Again if the prostheticjoint 100 is bending too fast, then the user is likely falling orexperiencing some other abnormal condition in the gait and theprosthetic joint 100 should be stiff. Thus, should the leg swing timedata indicate that the swing time exceeds the maximum leg swing time,the knee angle data indicate that the knee angle exceeds the maximumknee angle, and/or the knee angle rate of change data indicate that theknee angle rate of change exceeds the maximum knee angle rate of change,the state controller 112 proceeds to the Wait for Extend (phase 1)state.

In one embodiment, the sdt value corresponds to the maximum leg swingtime, the MaxSwingAngle value corresponds to the maximum knee angle,and/or the MaximumSwingRate value corresponds to the maximum knee anglerate of change. The sdt value can be set by default to 225 ms, or to anyother appropriate value.

The state controller 112 maintains a triggered state time counterindicating the time that the prosthetic joint 100 has been in theTriggered (phase 7) state. The triggered state time counter can begin assoon as the prosthetic joint 100 is in the Triggered (phase 7) state, orwhen the prosthetic joint 100 begins the Minimum Fire (Swing) Time(phase 7.1.1) state. The triggered state time counter, will be used, forexample, in one or more of the states described below.

Minimum Fire (Swing) Time (Phase 7.1.1):

When the prosthetic joint 100 is in the Minimum Fire (Swing) Time state,the state controller 112 waits for a period of time before proceeding tothe next state. Thus, Minimum Fire (Swing Time) state provides a timedelay during which perturbations in the moment caused by the transitioninto swing will not cause an abort from swing. For example, the MinimumFire (Swing) Time (phase 7.1.1) state allows the sensor 114 to “settle”so that valid data is provided. It is purely time based and the value isset by a time delay value such as a minimum swing state time delay. Theminimum swing time state delay is indicated in FIG. 8 as theMinFireTime. In one embodiment, the minimum swing time state delayMinFireTime can be set to 30 ms, but can be changed as necessary. Thereare no abnormal exits to the Wait for Extend (phase 1) state from theMinimum Fire (Swing) Time (phase 7.1.1) state. Thus, the statecontroller 112 can compare the triggered state time counter to theminimum swing time state delay MinFireTime and when the triggered statetime counter exceeds the minimum swing time state delay MinFireTime, thestate controller 112 sets the state of the prosthetic joint 100 to theTerminal Stance (phase 7.1.2) state.

Terminal Stance (Phase 7.1.2):

In the Terminal Stance (phase 7.1.2) state, the prosthetic joint 100begins to bend. Thus, when the prosthetic joint 100 is in the TerminalStance (phase 7.1.2) state, the state controller 112 looks for theprosthetic joint 100 to begin flexion. The state controller 112 proceedsto the next state, the Weighted Swing Flexion (phase 7.1.3) state, whenthe knee angle data indicates that the knee angle of the prostheticjoint 100 is greater than the bent knee angle decision valueExtendedAngle+3.

While in the Terminal Stance (phase 7.1.2) state, the state controller112 monitors both the moment data and the time since the prostheticdevice is in the Terminal Stance (phase 7.1.2) state. The knee angledata must indicate that the knee angle is greater than the bent kneeangle decision value ExtendedAngle+3 before a bent knee time decisionvalue, such as SwingBendTime value, is reached. This indicates that theprosthetic joint 100 is bent past a desired angle and is thussubstantially beginning to bend. If the knee angle is not greater thanthe bent knee decision value ExtendedAngle+3 before the bent knee timedecision value indicated by the SwingBendTime value is reached, then theamputee is taking too long to bend the prosthetic joint 100. This canindicate, for example, that the amputee is standing on his or her toes,has tripped, has stumbled, or is otherwise having an abnormal gaitevent. Thus, the state controller 112 will exit to the Wait for Extend(phase 1) state and return the prosthetic joint 100 to the stiff mode.

Furthermore, if the moment data indicates a large moment such as onegreater than a first moment boundary value indicated by the lowestmoment detected (MinMoment) plus a moment noise buffer value to accountfor noise (FireMomentDelta), then the state controller 112 exits to theWait for Extend (phase 1) state and return the prosthetic joint 100 tothe stiff mode. This is because a large moment at this state indicatesthat the amputee is standing on his or her toes, has tripped, hasstumbled, or is otherwise having an abnormal gait.

Weighted Swing Flexion (Phase 7.1.3):

In the Weighted Swing Flexion (phase 7.1.3) state, the state controller112 monitors the moment data to ensure that the moment of the prostheticjoint is decreasing. Thus, the state controller 112 determines whetherthe moment data indicates that the moment is less than a second momentboundary value or not. The second moment boundary value is the maximumswing moment value indicated as MaxSwingMoment in FIG. 8 minus 50% ofthe moment noise buffer value FireMomentDelta. The maximum swing momentvalue MaxSwingMoment is the maximum moment allowable during a swingphase of the prosthetic joint 100. Ideally there would be little to nomoment during swing and therefore the maximum swing moment valueMaxSwingMoment can be set to a low value. When the state controller 112determines that the moment data indicates that the moment is less thanthe second moment boundary value, the state controller 112 sets thestate of the prosthetic joint 100 to the next state, the Swing Flexion(phase 7.1.4) state. The second moment boundary value is indicated byline 140 in FIG. 9.

While in the Weighted Swing Flexion (phase 7.1.3) state, the statecontroller 112 monitors both the moment data and the triggered statetime counter. The moment data must indicate that the moment is less thanthe second moment boundary value before the triggered state time counterexceeds a decreased moment time decision value. The decreased momenttime decision value can include, for example, the SwingBendTime valuedisclosed above in addition to another time value, a decreasing momenttime buffer value SwingUnloadTime to compensate for the time that theamputee should have from bending the prosthetic joint 100 to decreasingthe moment of the prosthetic joint 100. Thus, the amputee only has acertain amount of time to decrease the moment below the second momentboundary value in order for the gait to be considered a normal gait. Ifthe triggered state time counter exceeds the decreased moment timedecision value, then the state controller 112 exits to the Wait forExtend (phase 1) state and returns the prosthetic joint 100 to the stiffmode.

Furthermore, if the moment data indicates that the moment is greaterthan a third moment boundary value, then the moment is not decreasingaccording to a normal gait. In such a case, the state controller 112exits to the Wait for Extend (phase 1) state and instructs theprosthetic joint 100 to remain stiff. The third moment boundary valueincludes the sum of a minimum swing moment boundary indicated in FIG. 8as a MinSwingMoment, and the moment noise buffer FireMomentDelta.

Swing Flexion (Phase 7.1.4):

When the prosthetic joint 100 is in the Swing Flexion (phase 7.1.4)state, all exits are to the Wait for Extend (phase 1) state. A firstexit occurs when the knee angle rate of change of the prosthetic joint100 falls below a minimum knee angle rate of change MinSwingRate. Thisindicates that the knee has nearly stopped bending and is beginning tostraighten as the lower leg swings forward. This is the exit that occursduring a normal step. Another exit to the Wait for Extend (phase 1)state occurs when the moment data indicates that the moment exceeds thebounds of zero plus or minus the maximum swing moment valueMaxSwingMoment. This indicates that there is increased pressure on theprosthetic foot connected to the prosthetic joint 100. Thus, theprosthetic joint 100 should be stiff Finally the state controller 112determines whether the knee angle is less than the peak angle by a valueof an angle peak noise buffer AngPeakDelta. Should the angle drop belowthe peak angle by the angle peak noise buffer AngPeakDelta the statecontroller 112 sets the state of the prosthetic joint 100 to the Waitfor Extend (Stance) (phase 1). This is because the knee angle indicatesthat the knee has finished bending and is beginning to extend inanticipation of putting pressure on the prosthetic foot and/or theprosthetic joint 100. Thus, the prosthetic joint 100 should be stiff.

In FIG. 8, the Setup Terminal Stance (phase 7.2.1) state, and the SetupSwing Flexion (phase 7.2.2) state are entered when the prosthetic joint100 is in the setup mode. Thus, the other states, Minimum Swing Time(phase 7.1.1) state, Terminal Stance (phase 7.1.2) state, Weighted SwingFlexion (phase 7.1.3) state, Swing Flexion (phase 7.1.4) state arebypassed in the setup mode. The Setup Terminal Stance (phase 7.2.1)state, and the Setup Swing Flexion (phase 7.2.2) state are designed toprovide minimal stumble recovery and to allow operation of theoptimization unit 110 to collect a plurality of data files related tonormal steps of an amputee to optimize the adjustable parameters of theprosthetic joint 100.

The adjustable parameters can include, for example, the prosthetic jointmovement decision values such as the straight knee angle decision value(ExtendedAngle−3), the bent knee angle decision value (ExtendedAngle+3),the extend wait state time delay (ExtendHoldDelay), the heel momentdecision value (HeelMinMax), rising moment decision value (T1), wait fortrigger 1 state count (MaxHeelWait), declining peak moment decisionvalue (PeakMoment−25 or PeakMoment*0.95), declining moment decisionvalue (T2), maximum leg swing time (sdt), maximum knee angle(MaxSwingAngle), maximum knee angle rate of change (MaximumSwingRate),minimum swing state time delay (MinFireTime), bent knee time decisionvalue (SwingBendTime), first moment boundary value(MinMoment+FireMomentDelta), moment noise buffer value(FireMomentDelta), second moment boundary value(MaxSwingMoment+FireMomentDelta), maximum swing moment value(MaxSwingMoment), decreased moment time decision value(SwingBendTime+SwingUnloadTime), decreased moment time buffer value(SwingUnloadTime), third moment boundary value(MinSwingMoment+FireMomentDelta), minimum swing moment boundary(MinSwingMoment), maximum swing moment (MaxSwingMoment), angle peaknoise buffer value (AngPeakDelta), and/or the minimum knee angle rate ofchange value (MinSwingRate).

In the setup mode, the prosthetic joint 100 should not prematurely exitinto the Wait for Extend (phase 1) state because the amputee is takingnormal steps under the supervision of another person, and is notstumbling. Thus, there is no need to predict when the amputee isstumbling or is having an abnormal gait because it is assumed that theamputee is taking normal steps. Thus, the prosthetic joint 100 shouldonly exit into the Wait for Extend (phase 1) state at the end of anormal step instead of prematurely due to a perceived abnormal step.

By adjusting the prosthetic joint movement decision values, theprosthetic joint 100 can minimize an amount of times that the prostheticjoint 100 exits one of the states into the Wait for Extend (phase 1)state, while also providing a more accurate assessment of when theprosthetic joint 100 should exit to the Wait for Extend (phase 1) state.In both the Setup Terminal Stance (phase 7.2.1) state, and the SetupSwing Flexion (phase 7.2.2) state, the Overall Monitors can remainactive in case when attempting a normal step, the amputee truly has anabnormal gait such as stumbling or falling.

Setup Terminal Stance (Phase 7.2.1):

This state is entered immediately when in Setup Mode and the Triggeredstate (phase 7) state is entered. The Setup Terminal Stance (phase7.2.1) ensures that a knee angle rate of change of the prosthetic joint100 exceeds the minimum knee angle rate of change value MinSwingRate+30.This ensures that the prosthetic joint 100 is in flexion and is bendingbefore the state controller loosens the prosthetic joint 100 in theSetup Swing Flexion (phase 7.2.2) state.

Setup Swing Flexion (Phase 7.2.2):

This state represents swing flexion. In the Setup Swing Flexion (phase7.2.2) state, the only and normal exit is to the Wait For Extend(phase 1) state and happens when the knee angle rate of change of theprosthetic joint 100 is less than the minimum knee angle rate of changeMinSwingRate.

FIG. 10 can be, for example, a screen provided by the optimization unit110. To enter the setup mode, the user can select the “Setting Wizard.”As seen in FIG. 11, the optimization unit can then enter into a basicsetup mode to optimize the prosthetic joint movement decision values. Tooptimize the prosthetic joint movement decision values, the optimizationunit 110 will collect a plurality of data files of a user walking atdifferent speeds.

As seen in FIG. 12, the optimization unit 110 can collect a data filefor a user walking at a fast speed, a data file for a user walking at aslow speed, and/or a data file for a user walking at a self selectednormal speed. Although the optimization unit 110 can utilize just asingle data file, it is preferable that multiple data files are usedwith the user walking at different speeds to ensure that the prostheticjoint movement decision values are optimized not only for a singlewalking speed of the user, but for multiple walking speeds. In oneembodiment, the optimization unit 110 can collect a data file for a userwalking at a first speed, a data file for a user walking at a secondspeed faster than the first speed, and/or a data file for a user walkingat a third speed faster than the second speed.

As seen in FIG. 13, to start collecting a data file, a user can selectthe “Start Recording” button. As seen in FIG. 14, information for asingle data file can be displayed including the moment data indicated bythe curve 122, the knee angle data indicated by the curve 124, the kneeangle rate of change data indicated by the curve 126, and/or the statedata indicated by the curve 142. To optimize the prosthetic jointmovement decision values, the optimization unit 110 analyzes the statedata to ensure that the state of the prosthetic device cycles normallyand that there are no abnormal exits to the Wait for Extend (phase 1)state. If there is an abnormal exit, the optimization unit 110 adjuststhe relevant prosthetic joint movement decision value so that the stateof the prosthetic joint 100 does not exit to the Wait for Extend(phase 1) state. Again, this is because the user is walking normallythroughout the single data file. Thus, any exits to the Wait for Extend(phase 1) state is considered to be premature and should be minimized ifpossible.

The optimization unit 110 can iteratively analyze the single data fileto adjust the prosthetic joint movement decision values until the numberof times the state prematurely exits to the Wait for Extend (phase 1)state is minimized. A similar reiterative analysis can be performed forthe other data files either serially or in parallel. When the prostheticjoint movement decision values are adjusted, the simulator state data144 can be displayed to indicate the state of the prosthetic joint 100with the adjusted prosthetic joint movement decision values.

Furthermore, in one embodiment, the optimization unit 110 can alsoadjust the relevant prosthetic joint movement decision values to ensurethat the state of the prosthetic joint 100 correctly corresponds to theparticular portion of the gait that the amputee is in. For example, inreference to FIG. 5, if the prosthetic joint 100 is in the Extend Wait(phase 2) state when the user is still in the Terminal Swing portion ofthe gait cycle, then the corresponding prosthetic joint movementdecision values can be adjusted to ensure that the prosthetic joint 100is in the Wait for Extend (phase 1) state.

To collect information for the data files, the user should take aplurality of steps as shown in FIG. 15. As seen in FIG. 15, in the firstdata file the user has taken “x” steps, in the second data file the userhas taken “y” steps, and in the third data file the user has taken “z”steps. The optimization unit 110 collects data for the “x” steps, the“y” steps, and the “z” steps, but filters out information regarding thefirst step and the last step. This is because those steps tend to bemore abnormal and not necessarily the steps the user will normally take.This helps to ensure that the data used to optimize the prosthetic jointmovement decision values are correct. In one embodiment, “x,” “y,” and“z” are selected be greater than 22 to ensure that at least 20 steps arerecorded for each data file. Of course “x,” y,” and “z,” can be set toany value to ensure that reliable information is captured foroptimization of the prosthetic joint movement decision values.

As seen in FIG. 16, after the optimization unit 110 has finishedanalyzing the data files and adjusting the prosthetic joint movementdecision values, it can display the suggested values for the prostheticjoint movement decision values. The user can then choose to apply theprosthetic joint movement decision values that have been optimized orretain the original prosthetic joint movement decision values.

Thus, the optimization unit 110 can adjust the numerous prosthetic jointmovement decision values without much human intervention or interaction.Given the current number of prosthetic joint movement decision valuesand the possibility that such numbers will increase, this can reduce thecost of fine tuning the prosthetic joint 100 and its correspondingprosthetic device. The optimization unit 110 can allow the prostheticjoint 100 to function to its full capacity in a cost effective manner.Furthermore, the optimization unit 110 allows a variety of people to setup the prosthetic joint 100 and its corresponding prosthetic device.With its ease of use, users without advanced degrees or significantexperience in the industry may be capable of setting up the prostheticjoint 100 and its corresponding prosthetic device. This can furtherreduce the costs associated with the prosthetic joint 100 and itscorresponding prosthetic device.

In one embodiment, state transitions identified by the optimization unit100 are depicted in FIG. 17. The optimization unit 110 can communicate,for example, with the prosthetic joint 100 in a wired or wirelessmanner. The optimization unit 110 can also be part of a computer or ahandheld system.

In one embodiment, the present invention can include a process as shownin FIG. 18. In Step S1802, prosthetic joint movement data can bedetected. For example, the state controller 112 (FIG. 4) can detectprosthetic joint movement data such as swing time data, moment data,knee angle data, and/or knee angle rate of change data. In Step S1804, astate of the prosthetic joint can be determined using a state controllerand the prosthetic joint movement data. For example, the statecontroller 112 can determine a state of the prosthetic joint 100 usingthe prosthetic joint movement data.

In Step S1806, the prosthetic joint movement decision values can beretrieved using a state controller. For example, the state controller112 can retrieve the prosthetic joint movement decision values from thememory 116. In Step S1808, the prosthetic joint movement data and theprosthetic joint movement decision values are analyzed using the statecontroller to determine when the state of the prosthetic joint shouldenter a stumble recovery state. For example, the state controller 112analyzes the prosthetic joint movement data and the prosthetic jointmovement decision values stored in the memory 116 to determine when thestate of the prosthetic joint should enter a stumble recovery state.

In another embodiment, the present invention can include a process shownin FIG. 19. In Step S1902, an optimization unit can be used to generatea plurality of data files containing prosthetic joint movement data froma movement of the prosthetic joint. For example, the optimization unit110 can be used to generate a plurality of data files containing jointmovement data of an amputee walking at various speeds.

In Step S1904, the optimization unit can iteratively analyze theprosthetic joint movement data for each of the plurality of data filesto determine the prosthetic joint movement decision values to ensure astate of the prosthetic joint matches with a corresponding movement ofthe prosthetic joint. For example, the optimization unit 110 caniteratively analyze the prosthetic joint movement data for each of theplurality of data files and adjust the prosthetic joint movementdecision values to ensure a state of the prosthetic joint matches upwith a corresponding movement of the prosthetic joint. This can prevent,for example, the prosthetic joint 100 from prematurely entering astumble recovery state.

In one embodiment, instead of a binary operation, the hydraulic dampingcylinder 102 (FIG. 1), and the actuator 150 can also operate not just ina loose mode and a stiff mode, but also one in various other modes withvaried resistances. Thus, there could also be a middle mode, which has aresistance between a low resistance and a high resistance, or any othernumber of modes with resistances between the low resistance and the highresistance.

The process described above can be stored in a memory of a computersystem as a set of instructions to be executed. In addition, theinstructions to perform the processes described above couldalternatively be stored on other forms of non-transitorymachine-readable media, including magnetic and optical disks and relatedmedia. For example the processes described could be stored onmachine-readable media, such as magnetic disks or optical disks, whichare accessible via a disk drive (or computer-readable medium drive).Further, the instructions can be downloaded into a computing device overa data network in a form of compiled and linked version.

Alternatively, the logic to perform the processes as discussed abovecould be implemented in additional computer or machine readable media,such as discrete hardware components as large-scale integrated circuits(LSI's), application-specific integrated circuits (ASIC's), firmwaresuch as electrically erasable programmable read-only memory (EEPROM's);and electrical, optical, acoustical and other forms of propagatedsignals (e.g., carrier waves, infrared signals, digital signals, etc.).

In one aspect, the control system within prosthetic knee 1 o includes atleast one central processing unit (CPU) or processor. The CPU can becoupled to a memory, ROM, or machine-readable media containing thecomputer-executable instructions for operating the valve of prostheticknee 1 o. Machine-readable media can be any available media that can beaccessed by the system and includes both volatile and nonvolatile media,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Machinestorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory, portable memory, or other memory technology, CD-ROM, digitalversatile disks (DVD), or other optical disk storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by the control system,including remote storage accessed over a wireless connection, such asBluetooth or 802.11-type wireless communication signals. Themachine-readable media may store instructions or data which implementall or part of the system described herein.

Communication media typically embodies machine-readable instructions,data structures, program modules, or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, or other wireless media.

The present disclosure has been described above in terms of presentlypreferred embodiments so that an understanding of the present disclosurecan be conveyed. However, there are other embodiments not specificallydescribed herein for which the present disclosure is applicable.Therefore, the present disclosure should not to be seen as limited tothe forms shown, which is to be considered illustrative rather thanrestrictive.

What is claimed is:
 1. A prosthetic joint system comprising: aprosthetic joint capable of having at least one state corresponding to agait; a state controller for determining the at least one state of theprosthetic joint; and an optimization unit programmed to: collectprosthetic joint movement data from movement of the prosthetic joint;and adjust a prosthetic joint movement decision value based on thecollected prosthetic joint movement data, wherein the state controlleris programmed to use the adjusted prosthetic joint movement decisionvalue to transition the prosthetic joint into a state for stumblerecovery.
 2. The system of claim 1 wherein the optimization unit isfurther programmed to adjust the prosthetic joint movement decisionvalue to reduce an amount of times the prosthetic joint is in a statefor stumble recovery.
 3. The system of claim 1 wherein the prostheticjoint movement data corresponds to a user walking with the prostheticjoint.
 4. The system of claim 3 wherein the optimization unit is furtherprogrammed to generate a plurality of data files including the collectedprosthetic joint movement data, and wherein the plurality of data filesincludes a first data file corresponding to the user walking with theprosthetic joint at a first speed, a second data file corresponding tothe user walking with the prosthetic joint at a second speed greaterthan the first speed, and a third data file corresponding to the userwalking with the prosthetic joint at a third speed greater than thesecond speed and the first speed.
 5. The system of claim 3 wherein theoptimization unit is further programmed to generate a plurality of datafiles including the collected prosthetic joint movement data, andwherein the plurality of data files are filtered to remove dataassociated with a first step and a last step of the user walking withthe prosthetic joint.
 6. A method of configuring a prosthetic jointcapable of having at least one state corresponding to a gait, the methodcomprising: collecting prosthetic joint movement data from movement ofthe prosthetic joint; and adjusting a prosthetic joint movement decisionvalue based on the collected prosthetic joint movement data, wherein theadjusted prosthetic joint movement decision value is used to transitionthe prosthetic joint into a state for stumble recovery.
 7. The method ofclaim 6 further comprising adjusting the prosthetic joint movementdecision value to reduce an amount of times the prosthetic joint is in astate for stumble recovery.
 8. The method of claim 6 wherein thecollected prosthetic joint movement data corresponds to a user walkingwith the prosthetic joint.
 9. The method of claim 8 further comprisinggenerating a plurality of data files including the collected prostheticjoint movement data, wherein the plurality of data files include a firstdata file corresponding to the user walking with the prosthetic joint ata first speed, a second data file corresponding to the user walking withthe prosthetic joint at a second speed greater than the first speed, anda third data file corresponding to the user walking with the prostheticjoint at a third speed greater than the second speed and the firstspeed.
 10. The method of claim 8 further comprising generating aplurality of data files including the collected prosthetic jointmovement data, wherein the plurality of data files are filtered toremove data associated with a first step and a last step of the userwalking with the prosthetic joint.
 11. The system of claim 1 wherein theprosthetic joint movement decision value includes a maximum leg swingtime, a maximum knee angle, or a maximum knee angle rate of change. 12.The system of claim 1 wherein the prosthetic joint movement data includeat least one of swing time data, moment data, knee angle data, and kneeangle rate of change data.
 13. The method of claim 6 wherein theprosthetic joint decision value includes a maximum leg swing time, amaximum knee angle, or a maximum knee angle rate of change.
 14. Themethod of claim 6 wherein the prosthetic joint movement data include atleast one of swing time data, moment data, knee angle data, and kneeangle rate of change data.
 15. A non-transitory computer readablestorage medium storing computer-executable instructions for configuringa prosthetic joint capable of having at least one state corresponding toa gait, wherein when executed by a processor, the computer-executableinstructions cause the processor to: collect prosthetic joint movementdata from movement of the prosthetic joint; and adjust a prostheticjoint movement decision value based on the collected prosthetic jointmovement data, wherein the adjusted prosthetic joint movement decisionvalue is used to transition the prosthetic joint into a state forstumble recovery.
 16. The non-transitory computer readable storagemedium of claim 15 wherein the computer-executable instructions furthercause the processor to adjust the prosthetic joint movement decisionvalue to reduce an amount of times the prosthetic joint is in a statefor stumble recovery.
 17. The non-transitory computer readable storagemedium of claim 15 wherein the prosthetic joint movement datacorresponds to a user walking with the prosthetic joint.
 18. Thenon-transitory computer readable storage medium of claim 15 wherein thecomputer-executable instructions further cause the processor to generatea plurality of data files including the collected prosthetic jointmovement data, wherein the plurality of data files include a first datafile corresponding to the user walking with the prosthetic joint at afirst speed, a second data file corresponding to the user walking withthe prosthetic joint at a second speed greater than the first speed, anda third data file corresponding to the user walking with the prostheticjoint at a third speed greater than the second speed and the firstspeed.
 19. The non-transitory computer readable storage medium of claim15 wherein the computer-executable instructions further cause theprocessor to generate a plurality of data files including the collectedprosthetic joint movement data, wherein the plurality of data files arefiltered to remove data associated with a first step and a last step ofthe user walking with the prosthetic joint.
 20. The non-transitorycomputer readable storage medium of claim 15 wherein the prostheticjoint movement decision value includes a maximum leg swing time, amaximum knee angle, or a maximum knee angle rate of change.
 21. Thenon-transitory computer readable storage medium of claim 15 wherein theprosthetic joint movement data include at least one of swing time data,moment data, knee angle data, and knee angle rate of change data.